home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 11 / FM Towns Free Software Collection 11.iso / t_os / tool / artemis1 / src / makepat.awk < prev    next >
Encoding:
AWK Script  |  1993-08-25  |  2.0 KB  |  85 lines

  1. # ARTemis の12×12ドット パターン文字列出力を
  2. # putpict(pict.c) 用データに変換する
  3. #
  4. #static char pic_selecton[] = {
  5. #    0xfe,
  6. #    12,12, COL_menuString,
  7. #    0x00,0x00,0x3f,0xc0,0x40,0x20,0x40,0x20,0x40,0x20,0x40,0x20,
  8. #    0x40,0x20,0x40,0x20,0x40,0x20,0x40,0x20,0x3f,0xc0,0x00,0x00,
  9. #    12,12, Black,
  10. #    0x00,0x20,0x00,0x40,0x00,0x80,0x01,0x00,0x03,0x00,0x16,0x00,
  11. #    0x0e,0x00,0x0c,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  12. #    0xff
  13. #};
  14.  
  15. BEGIN {
  16.     colmenu = sprintf("%04x", 19*1024 + 19*32 + 22)
  17.     colmenu2 = sprintf("%04x", 24*1024 + 24*32 + 24)
  18.     colmenulight = sprintf("%04x", 31*1024 + 31*32 + 31)
  19.     colmenushade = sprintf("%04x", 12*1024 + 12*32 + 14)
  20.     RS = ""
  21.     FS = "[ \t\n]"
  22. }
  23.  
  24. {
  25.     printf("/* record %d: %d fields */\n", NR, NF)
  26.     printf("static char pic_XXXX[] = {\n");
  27.     printf("\t0xfe,\n");
  28.     xbytes = int((12 + 7) / 8)
  29.     for (i=0; i<8; i++)
  30.         bit[i] = 2 ^ (7-i);
  31.     for (i=0; i<xbytes*12; i++)
  32.     {
  33.         menu[i] = menu2[i] = menulight[i] = menushade[i] = 0;
  34.     }
  35.     for (y=0; y<12; y++)
  36.     {
  37.         for (x=0; x<12; x++)
  38.         {
  39.             field = $(1+12*y+x)
  40.             idx = xbytes * y + int(x/8)
  41.             if (field == colmenu)
  42.             {
  43.                 menu[idx] += bit[x%8];
  44.             }
  45.             else if (field == colmenu2)
  46.             {
  47.                 menu2[idx] += bit[x%8];
  48.             }
  49.             else if (field == colmenulight)
  50.             {
  51.                 menulight[idx] += bit[x%8];
  52.             }
  53.             else if (field == colmenushade)
  54.             {
  55.                 menushade[idx] += bit[x%8];
  56.             }
  57.         }
  58.     }
  59.     printf("\t12,12, COL_menu,\n\t");
  60.     for (i=0; i<xbytes*12; i++)
  61.     {
  62.         printf("0x%02x,", menu[i]);
  63.         if (i%12 == 11)     printf("\n\t");
  64.     }
  65.     printf("12,12, COL_menu2,\n\t");
  66.     for (i=0; i<xbytes*12; i++)
  67.     {
  68.         printf("0x%02x,", menu2[i]);
  69.         if (i%12 == 11)     printf("\n\t");
  70.     }
  71.     printf("12,12, COL_menuLight,\n\t");
  72.     for (i=0; i<xbytes*12; i++)
  73.     {
  74.         printf("0x%02x,", menulight[i]);
  75.         if (i%12 == 11)     printf("\n\t");
  76.     }
  77.     printf("12,12, COL_menuShade,\n\t");
  78.     for (i=0; i<xbytes*12; i++)
  79.     {
  80.         printf("0x%02x,", menushade[i]);
  81.         if (i%12 == 11)     printf("\n\t");
  82.     }
  83.     printf("0xff\n};\n\n");
  84. }
  85.